Computing devices, especially small mobile devices, can have a limited amount of resources such as disk space for storing applications and data. Every time an application is installed on a computing device, it reduces the storage space available for other uses. Conventionally, each application is packed in a single app bundle that can be downloaded and installed on a client device. The single app bundle can include most, if not all, of its code and data, even though not all of them are needed at a given time when the application is in use. Some of the code and data may never get utilized, but nevertheless can occupy on-device storage space for as long as the application lives on the client device. This can be an inefficient use of the valuable storage space on the client device and limit the number of applications that can be installed on the device. Given that the applications, even those designed to run on mobile devices, can be of significant sizes, it is desirable to design and construct applications so as to minimize the waste of disk space when the applications are installed on the device without negatively affecting their usability.